博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用户模块 之 根据条件查询用户
阅读量:5309 次
发布时间:2019-06-14

本文共 5097 字,大约阅读时间需要 16 分钟。

实现用户显示的状态以及查看页面的后续功能

 

 

初始时数据库用户的状态为:

 

初始时用户列表页面的显示:

 

 通过代码进行动态显示的效果图:

进行修改数据库的状态:

显示出来的效果:

 

 

 

只需在user_list.jsp找到状态的那一列进行一个判断即可,将其代码修改为:

已启用
未启用

接下来需要进行实现的功能有

1、停用

2、编辑

3、修改

4、查询

5、添加

6、批量删除

 

 

 

分析根据条件查询用户

可以将上面的功能分为两个模块:

1、查询模块

2、增删改

需要在数据库中添加一个字段createtime

 

 在user实体中进行添加:

private String createtime;//通过添加该字段方便进行查询

 需要用到的流程图:

 

三个参数,分别是页面搜索部分start表示开始日期 end标识结束日期 username表示用户名,在本次的根据条件查询需要访问二次数据库,一次是数目,一次是list

 

在数据库中进行测试一下:

 

 

 加入limit表示的是分页,需要使用到pageBean

 

书写根据条件查询

 

在user-list.jsp中加入搜索表单的action中加入:

 

 

 

在User_Action.java中写入getPageBeanByCondition方法,再其中封装pageBean:

 

//通过条件得到pageBean    public String getPageBeanByCondition() throws Exception {                //如果用户传递的start为空,那么我们将时间设置为0001-01-01        if(start.isEmpty())        {            start="0001-01-01";        }        //如果用户传递的end为空,那么我们将时间设置为9999-12-31        if(end.isEmpty())        {            end="9999-12-31";        }        //username为空的话,hibername可以帮我们解决问题                PageBean userPageBean = userService.getuserPageBeanByCondition(currentPage,start,end,user.getUsername());                //进行对数据的回显,回显的时候需要在user-list.jsp获取        ActionContext.getContext().put("start", start);        ActionContext.getContext().put("end", end);        ActionContext.getContext().put("username", user.getUsername());                ActionContext.getContext().put("userPageBean", userPageBean);                return "userList";    }

 

传递三个参数给userService.java

public PageBean getuserPageBeanByCondition(Integer currentPage, String start, String end, String username, ) {                //得到符合条件的用户数目        Integer totalCount = userDao.getAllUserByCondition(start,end,username);        PageBean pageBean = new PageBean(currentPage, 6, totalCount);//6表示页面显示的数量        //todo 根据条件得到list并封装list        List
list = userDao.getPageBeanListByCondition(pageBean,start,end,username); pageBean.setList(list); return pageBean; }

 

在userDao中写入sql语句:

//1、2通过开始日期与结束日期还有用户名条件进行查询  //1    public Integer getAllUserByCondition(String start, String end, String username) {        Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();                String sql = "select count(*) from user where createtime > ? and createtime < ? and username like ?;                           NativeQuery query = session.createSQLQuery(sql);        query.setParameter(1, start);        query.setParameter(2, end);        query.setParameter(3, "%"+username+"%");                BigInteger result = (BigInteger) query.uniqueResult();                return result.intValue();    }   //2    public List
getPageBeanListByCondition(PageBean pageBean, String start, String end, String username) { Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); //需要三个条件 String sql = "select * from user where createtime > ? and createtime < ? and username like ? limit ?,?"; NativeQuery query = session.createSQLQuery(sql); query.addEntity(User.class); query.setParameter(1, start); query.setParameter(2, end); query.setParameter(3, "%"+username+"%"); query.setParameter(4, pageBean.getStart()); query.setParameter(5, pageBean.getPageSize()); List list = query.list(); return list; }

 

 

 

为防止在进行查询时候点击下方分页的上一页以及其它查询所有,在user-list.jsp中进行参数的拼接:

&start=
&end=
&username=
"><<
&start=
&end=
&username=
">
&start=
&end=
&username=
">
&start=
&end=
&username=
">
&start=
&end=
&username=
">
&start=
&end=
&username=
">尾页
&start=
&end=
&username=
">>>

 

进行对输入的三个参数回显到输入框中

 

 修改user.jsp中该部分的代码:

">
">
">
">

 

最终效果:

 

转载于:https://www.cnblogs.com/jiguiyan/p/10896411.html

你可能感兴趣的文章
ubuntu 用管理员身份进入系统
查看>>
蓝牙通信第1篇:搜索蓝牙设备
查看>>
GNU Parallel指南
查看>>
字符串逆序输出,冒泡,二分查找
查看>>
(转)【Unity Shaders】Alpha Test和Alpha Blending
查看>>
Compass Card Sales(模拟)
查看>>
dt dl列表布局
查看>>
LeetCode 628. Maximum Product of Three Numbers (最大三数乘积)
查看>>
Sqlserver 数据交互(将数据库A表A中的数据插入到数据库B中的表B)
查看>>
LeetCode 40. Combination Sum II (组合的和之二)
查看>>
LeetCode 163. Missing Ranges (缺失的区间)$
查看>>
34.Linux-printk分析、使用__FILE__, __FUNCTION__, __LINE__ 调试
查看>>
明白了最基本的压缩原理
查看>>
UITableViewCell 多选和全选(checkBoxCell)
查看>>
OA办公系统可解组织管理燃眉之急
查看>>
(转) 插入文章时,中文引号转化为英文引号
查看>>
SpringMVC @RequestParam和@RequestBody的区别
查看>>
18.Docker Compose
查看>>
jdk导入证书命令 https升级证书对支付的影响
查看>>
ESP8266无线串口模块介绍
查看>>